package com.jzx.service;

import com.jzx.bean.Information;


import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author JunedQQ
 * @create 2019/6/24
 * @since 1.0.0
 */
public interface InfoService {

    /**
     * 获取所有的资讯
     * @return
     */
    List<Information> getAllInfo();

    /**
     * 根据id获取资讯信息
     * @param id
     * @return
     */
    Information getInfoById(String id);

    /**
     * 查找用户id所发布的资讯
     * @param userId
     * @return
     */
    List<Information> getInfoByUserId(String userId);

    /**
     * 根据资讯id来获取查看量
     * @param id
     * @return
     */
    int getInfoSeeById(String id);

    /**
     * 根据id来获取资讯的标题
     * @param id
     * @return
     */
    String getInfoTitleById(String id);

    /**
     * 根据id来获取图片地址
     * @param id
     * @return
     */
    List<String> getInfoPhotoAddressById(String id);

    /**
     * 添加资讯
     * @param info
     * @return
     */
    int addInformation(Information info);


    /**
     * 根据id来删除资讯
     * @param id
     * @return
     */
    int deleteInfoById(String id);


    /**
     * 删除用户id所发布的所有资讯
     * @param userId
     * @return
     */
    int deleteInfoByUserId(String userId);

    /**
     * 根据id来更新userId
     * @param id
     * @param userId
     * @return
     */
    int updateInfoUserIdById(String id,String userId);

    /**
     * 资讯的查看量加一
     * @param id
     * @return
     */
    int infoSeePlusOne(String id);

    /**
     * 根据id来更新资讯的标题
     * @param id
     * @return
     */
    int updateInfoTitleById(String id,String title);

    /**
     * 根据id来更新资讯的图片地址
     * @param id
     * @return
     */
    int updateInfoPhotoAddressById(String id,String address);

    /**
     * 根据id来获取用户id
     * @param id
     * @return
     */
    String getUserIdById(String id);

    /**
     * 获取十个资讯
     * @param start 起始位置
     * @return
     */
    @Select("select * from info limit #{start},10")
    List<Information> getTenInfo(int start);


    /**
     * 获取任意资讯
     * @param start 起始位置
     * @param count 获取个数
     * @return
     */
    @Select("select * from info limit #{start},#{count}")
    List<Information> getAnyInfo(int start,int count);
}